import pandas as pd
import random


def generate_chinese_name():
    # 姓氏库
    surnames = ['赵', '钱', '孙', '李', '周', '吴', '郑', '王', '冯', '陈', '褚', '卫', '蒋', '沈', '韩', '杨', '朱',
                '秦', '尤', '许', '何', '吕', '施', '张', '孔', '曹', '严', '华', '金', '魏', '陶', '姜', '戚', '谢',
                '邹', '喻', '柏', '水', '窦', '章', '云', '苏', '潘', '葛', '奚', '范', '彭', '郎', '鲁', '韦', '昌',
                '马', '苗', '凤', '花', '方', '俞', '任', '袁', '柳', '酆', '鲍', '史', '唐', '费', '廉', '岑', '薛',
                '雷', '贺', '倪', '汤', '滕', '殷', '罗', '毕', '郝', '邬', '安', '常', '乐', '于', '时', '傅', '皮',
                '卞', '齐', '康', '伍', '余', '元', '卜', '顾', '孟', '平', '黄', '和', '穆', '萧', '尹']

    # 名字库
    given_names = ['翔', '云', '婷', '伟', '杰', '雨', '敏', '涛', '佳', '明', '洋', '丽', '强', '梅', '宇', '晨', '鑫',
                   '慧', '峰', '莉', '建', '琴', '刚', '萍', '浩', '玲', '军', '艳', '宏', '蓉', '刘', '凯', '秀', '飞',
                   '静', '娟', '宝', '博', '霞', '济', '斌', '蕾', '春', '彬', '芳', '新', '欣', '志']

    # 随机选择姓氏和名字
    surname = random.choice(surnames)
    given_name = random.choice(given_names)

    # 返回生成的姓名
    return surname + given_name


def generate_student_data():
    # 学院数据
    colleges = ['计算机学院', '机械学院', '电气学院']

    # 专业数据
    majors = {
        '计算机学院': ['计算机科学与技术', '信息安全', '物联网'],
        '机械学院': ['工业设计', '车辆工程', '材料成型及控制工程'],
        '电气学院': ['自动化', '电子信息工程', '模拟电子技术']
    }

    # 生成学生数据
    data = []
    student_id_counter = 20230001

    for college in colleges:
        for major in majors[college]:
            total_classes = 5  # 假设每个专业有5个班级
            for class_number in range(1, total_classes + 1):
                for _ in range(1, 28):  # 每个班级27人
                    student_id = f'{student_id_counter:08d}'
                    name = generate_chinese_name()
                    email = f'{student_id}@example.com'
                    phone = f'1{random.randint(300, 999)}{random.randint(1000000, 9999999)}'

                    data.append([student_id, name, college, major, class_number, email, phone])

                    student_id_counter += 1

    # 创建 DataFrame
    df = pd.DataFrame(data, columns=['学号', '姓名', '学院', '专业', '班级', '邮箱', '电话'])

    return df


# 生成学生数据
student_data = generate_student_data()

# 将数据写入 Excel 文件
student_data.to_excel('随机学生数据.xlsx', index=False)
# print("学生数据已写入 Excel 文件：学生数据.xlsx")
